package xiaohui

// 删除整数的k个数字，获得删除后的最小值
// 贪心算法

func RemoveKDigits(num string, k int) string {
	for i := 0; i < k; i++ {
		hasCut := false
		// 从左到右遍历，找到比自己右侧数字大的数字并删除
		for j := 0; j < len(num)-1; j++ {
			if num[j] > num[j+1] {
				num = num[0:j] + num[j+1:]
				hasCut = true
				break
			}
		}
		// 如果没有找到要删除的数字，则删除最后一个数字
		if !hasCut {
			num = num[0:]
		}
		// 清除整数左侧的数字0
		num = removeZero(num)
	}
	return num
}

func removeZero(num string) string {
	for i := 0; i < len(num)-1; i++ {
		if num[i] != '0' {
			break
		}
		num = num[1:]
	}
	return num
}
